# Author    :Dun_Hz
# Time      :2024/3/15 11:34
# 使用分治算法判断某个元素是否在列表中
# 子问题算法（list中只有一个元素）
def is_in_list(list,key):
    return [False, True][list[0]==key]

# 分治法
def solve(list,key):
    n = len(list)
    if n==1:
        return is_in_list(list,key)             # 如果不加 return 的话，会无限循环
    # 分解（子问题规模为n/2）
    left_list , right_list = list[:n//2], list[n//2:]
    # 递归，分治，合并
    res = solve(left_list, key) or solve(right_list, key)
    return res
if __name__ =='__main__':
    test_list = [12,2,34,56,36,745,235,123]
    print(solve(test_list,3))